package com.lhkj.ct.meta.admin.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lhkj.ct.base.enums.DataScope;
import com.lhkj.ct.meta.admin.model.dto.RoleForm;
import com.lhkj.ct.meta.admin.model.entity.TblRole;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.Set;

/**
 * <p>
 * 角色管理 Mapper 接口
 * </p>
 *
 * @author jobob
 * @since 2023-08-30
 */
public interface SysRoleMapper extends BaseMapper<TblRole> {


    @Select("select id, name, code, note, status, sort, data_scope from tbl_role where id = #{id,jdbcType=VARCHAR}")
    RoleForm getRoleForm(@Param("id") String id);

    /**
     * 获取最大范围的数据权限
     *
     * @param roleIds
     * @return
     */
    DataScope getMaximumDataScope(@Param("roleIds") Set<String> roleIds);

    /**
     * 根据用户ID查询角色列表
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    Set<String> selectRolesByUserId(@Param("userId") String userId);
}
